﻿using System;

namespace StaticConstructor
{
    class Program
    {
        static void Main(string[] args)
        {
            Foo foo = new Foo();
            int a = 1000;
            Console.WriteLine(nameof(a));

        }
    }
    class Foo
    {
        //此句话打印的是0 
        //静态Field的初始化是按照顺序进行的
        //开始是打印的0 
        //静态的变量引用并不是到根据类的实例来的，而是根据每一个type进行的
        public static Foo Instance = new Foo();
        public static int X = 3;

        //这个构造函数第二次执行的时候才会打印3
        //才是new执行时 因此一个是0 一个是 3
        public Foo() { Console.WriteLine(X); }   // 0
    }
}
